Computer software applications allow users to create a variety of documents to assist them in work, education, and leisure. For example, word processing applications allow users to create letters, articles, books, memoranda, and the like. Spreadsheet applications allow users to store, manipulate, print, and display a variety of alpha-numeric data. Such applications have a number of well-known strengths, including rich editing, formatting, and calculation.
To keep up with demand for more advanced functionality for such computer software applications, software developers have begun to use markup languages to allow users to annotate a software application document to give the document a useful structure apart from the normal functionality of the software application responsible for creating the document or the visible formatting associated with the document. For example, a user may wish to create on her word processing application a template document for preparation of a resume, a will, or an article that she wishes to transmit to a publisher. By applying structure to the document, persons or institutions receiving the document may make use of the structure by processing the document to utilize data defined by the document structure.
For example, some word processing applications allow users to annotate a word processing document with Extensible Markup Language (XML) elements so that the user may define certain data types and data definitions for data inserted into the document. If the user has prepared a resume document, the user may annotate the resume document with XML elements to define certain allowable data structures and data types within the document. A resume document, for example, may include an “experience” section in which the user will include present and past work experience. Using XML, the user may desire to annotate the “experience” section of the document to define that certain allowable information in a prescribed order in a prescribed number may be included in the “experience” section of the document. For example, the user may wish to annotate the “experience” section of the document to allow for no more than four present or past experience items.
By annotating a document such as a resume document with a structure, as defined, for example by using XML, the user or a recipient of the document may develop software applications for reading the user's document and for making use of data defined by the structure. For example, a user may prepare an article document to send to a publisher of the article, and the user may annotate the article document with XML structure to define certain sections of the article such as the “title” and the “body” of the article. The publisher may develop computer software applications for reading the article document and for extracting the data such as text or images included within a given structure. For example, the publisher may write a computer software application that will read the user's article document and extract the text and images associated with the “body” section without regard to other structure or content contained in the document.
Unfortunately, most users of such computer software applications do not have the requisite understanding of markup languages, such as XML, in order to correctly apply allowable markup language elements to a document. Therefore, there is a need for a method and system for providing a user with help functionality for assisting the user in annotating a document with desired markup language elements for adding structure to the document. It is with respect to these and other considerations that the present invention has been made.